package com.g4.shoppingback.service;

import com.g4.shoppingback.common.PageVo;
import com.g4.shoppingback.pojo.DdUsersInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author admin
 * @since 2022-02-19
 */
public interface IDdUsersInfoService extends IService<DdUsersInfo> {

    /**
     * 根据id查询用户和角色
     * @param id 用户id
     * @return 返回单个用户信息
     */
    DdUsersInfo selectUserById(Integer id);

    /**
     * 用户权限查询
     * @param id 用户id
     * @return 权限列表
     */
    List<String> selectPermissions(Integer id);

    /**
     * 根据分页信息或用户名查询用户
     * @param pageVo 封装了查询关键字和页数
     * @return 返回分页信息
     */
    PageVo selectUserByPaged(PageVo pageVo);

    /**
     * 根据用户id删除用户
     * @param id 用户id
     * @return 返回影响行数
     */
    int deleteUserById(Integer id);

    /**
     * 新增用户
     * @param ddUsersInfo 用户信息
     * @return 返回影响行数
     */
    int addUser(DdUsersInfo ddUsersInfo);

    /**
     * 校验用户名和电话是否重复
     * @param username 用户名
     * @param telephone 电话
     * @return 返回判断结果
     */
    String checkNameAndPhone(String username, String telephone);

    /**
     * 根据用户名查询用户
     * @param username
     * @return
     */
    DdUsersInfo selectUser(String username);

    /**
     * 修改用户信息
     * @param ddUsersInfo
     * @return 返回影响行数
     */
    int updateUser(DdUsersInfo ddUsersInfo);

    /**
     * 修改用户密码
     * @param id 用户id
     * @param newPassword 新密码
     * @return 返回影响行数
     */
    int updatePassword(Integer id, String newPassword);
}
